Набор данных электронной почты Enron Corporation

Чтобы вручную такое не парсить, будем использовать библиотеку email

Пример письма до чистки текста:

Пример письма после чистки текста:

Теперь посмотрим на распределение длин писем (по количеству слов)

Когда люди отсылали письма?

О чём говорится в письмах?

В темах писем

В содержании писем

Анализ отправителей и получателей писем

Топ-20 адресов, с которых было отправлено наибольшее количество электронных писем

Топ-20 адресов, на которые было отправлено наибольшее количество электронных писем

Как видим, в графиках распределения получателей и отправителей писем много различий - какие-то люди писем меньше пишут, чем получают и наоборот

Теперь посмотрим парные количества. Сначала мы рассмотрим только электронные письма, отправленные на один адрес электронной почты, которые могут быть более важными личными сообщениями

Как видим, некоторые люди отправляют себе много электронных писем

Интересно посмотреть на эти взаимосвязи в виде графа

Тематическое моделирование c LDA model

Для начала слова нормализуем и удалим оставшиеся знаки препинания

Интерпретируемости получили не очень много, LDA модель сработала не очень хорошо

Кластеризация word2vec embeddings

Понизим размерность до 5 с помощью UMAP

Будем считать кластеры не для слов, а для усредненных эмбеддингов текстов (писем). В этом случае для интерпретации будем брать слова наиболее близкие к кластеру.

Интересный кластер, хоть некоторые слова написаны по-разному, модель смогла понять что они встречаются в похожих контекстах:

Кластер некоторых интересный личностей:

Кластер некоторых стран и континентов:

Кластер радостных слов:

А также ещё некоторые

Теперь попробуем другой подход, кластеризуем просто векторные представления слов

Тематическое моделирование c BERTopic

Кластере в среднем более интерпретируемы, чем ранее